package com.btm.mapper;

import com.btm.entity.Organization;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;

/**
 * 机构信息Mapper接口
 */
@Mapper
public interface OrganizationMapper {
    
    /**
     * 根据主键查询机构信息
     *
     * @param id 主键
     * @return 机构信息
     */
    Organization selectById(@Param("id") Long id);

    /**
     * 根据机构名称查询机构信息，精准查询
     *
     * @param name 机构名称
     * @return 机构信息列表
     */
    List<Organization> findByAccurateName(@Param("name") String name);
    /**
     * 根据机构名称查询机构信息，模糊查询
     *
     * @param name 机构名称
     * @return 机构信息列表
     */
    List<Organization> findByName(@Param("name") String name);

    /**
     * 查询所有机构信息
     *
     * @return 机构信息列表
     */
    List<Organization> selectAll();
    
    /**
     * 根据上级机构ID查询下级机构列表
     *
     * @param parentId 上级机构ID
     * @return 机构信息列表
     */
    List<Organization> selectByParentId(@Param("parentId") Integer parentId);
    
    /**
     * 根据多个上级机构ID查询下级机构列表
     *
     * @param parentIds 上级机构ID列表
     * @return 机构信息列表
     */
    List<Organization> selectByParentIds(@Param("parentIds") List<Integer> parentIds);
    
    /**
     * 根据条件查询机构列表
     *
     * @param organization 查询条件
     * @return 机构信息列表
     */
    List<Organization> selectByCondition(Organization organization);
}